ذخيره سازی اطلاعات در VB.NET

يکی از مهمترين مسائل موجود در هر زبان برنامه نويسی ، نحوه ذخيره و بازيابی اطلاعات مورد نياز يک برنامه است . فرض کنيد ، قصد نوشتن برنامه ای را داشته باشيم که در آن از کاربران بخواهيم نام خود را وارد نمايند . پس از درج نام توسط کاربران ، اطلاعات فوق را چگونه می بايست ذخيره نمود تا امکان استفاده از آنان در برنامه ، فراهم گردد؟. چگونه می توان اقدام به ذخيره سازی داده هائی با محتوياتی خاص نظير : "اعداد" و يا " تاريخ " نمود؟. نحوه بازيابی اطلاعات ذخيره شده به چه صورت است ؟ در پاسخ به تمامی سوالات فوق ، می بايست به جايگاه بسيار مهم "متغيرها " در يک زبان برنامه نويسی ، اشاره نمود .
متغيرها يکی از مفاهيم اوليه و در عين حال بسيار مهم در دنيای برنامه نويسی می باشند . با استفاده از متغيرها يک نام ( label ) به ناحيه ای از حافظه نسبت داده شده و امکان ذخيره سازی نوع خاصی از داده در آن فراهم می گردد . هر يک از زبان های برنامه نويسی دارای امکانات و مجموعه قوانينی به منظور تعريف ، نسبت دهی و دستابی به محتويات يک متغير می باشند .با استفاده از متغيرها ، امکان انجام عمليات متفاوتی نظير محاسبات رياضی ، پردازش بر روی رشته ها ، شمارش طول يک عبارت ، در يک برنامه فراهم می گردد .
VB.NET ، زبانی قدرتمند در ارتباط با نوع داده ها می باشد . در زمان تعريف يک متغير ، می بايست نوع داده مربوطه را نيز مشخص نمود (نظير String,Integer و يا Date ) .پس از تعريف يک متغير و نوع آن ، نحوه برخورد با داده ( نحوه ذخيره و بازيابی و انجام عمليات مجاز بر روی آن ) ، مشخص می گردد.
در اين مقاله قصد داريم به بررسی امکانات VB.NET به منظور ذخيره سازی اطلاعات پرداخته و در اين راستا با نوع های متفاوت داده و جايگاه هر يک از آنان ، آشنا شويم .

متغير چيست ؟

متغير ، مرجعی برای مراجعه به يک محل خاص در حافظه بوده که برنامه نويس برای مراجعه به آن يک نام خاص را تعريف و مشخص می نمايد . از مکان های فوق به منظور ذخيره سازی اطلاعات و استفاده از محتويات مربوطه در يک برنامه استفاده می گردد. در حقيقت متغيرها ، اطلاعاتی را بطور حقيقی در خود ذخيره نمی نمايند بلکه ما را به سمت محل ذخيره سازی و در نهايت يافتن اطلاعات ، هدايت می نمايند .
مثال : در مثال زير سه متغير به منظور ذخيره سازی يک رشته Text ، يک مقدار عددی و يک تاريخ ، تعريف و مقداردهی شده اند .

Dim    City As String
Dim    Counter As Integer
Dim    PublishDate As Date
City = "Tehran"
Counter = 190
PublishDate = #6/15/2004#

پس از تعريف هر متغير ، امکان نسبت دهی يک مقدار به آن ، مشاهده اطلاعات ذخيره شده ، بازيابی اطلاعات و يا درج اطلاعات جديد در آن ، فراهم می گردد.متغيرها از جمله عناصر ضروری برای ذخيره سازی داده در يک زبان برنامه نويسی بوده و VB.NET نيز از اين قاعده مستثنی نخواهد بود .

تعريف يک متغير

همانگونه که در مثال قبل مشاهده گرديد ، قبل از انتساب مقدار به يک متغير، می بايست اقدام به تعريف متغير و مشخص نمودن نوع داده آن نمود . پس از تعريف يک متغير و مشخص نمودن نوع آن ، نحوه برخورد با آن در برنامه مشخص خواهد شد. با استفاده از فرآيندی موسوم به Declaration ، اقدام به تعريف متغيرها و نوع آنان ، می گردد. تعريف متغيرها ، يکی از نکات مهم در دنيای برنامه نويسی است . در زما ن ايجاد صفحات پويا با استفاده از ASP.NET و توسط زبان های برنامه نويسی نظير VB.NET و يا سی شارپ ، می بايست تمامی متغيرها قبل از استفاده دريک برنامه و يا صفحه وب ، تعريف گردند .
در VB.NET برای تعريف يک متغير از کليد واژه Dim ( اقتباس شده از واژه Dimension ) ، استفاده می گردد.
مثال : در مثال زير ، يک متغير رشته ای با نام strCityName ، تعريف و در ادامه مقدار " Teharn" ، به آن نسبت داده شده است .

Dim strCityName  As String
strCityName = "Tehran"

در زمان تعريف يک متغير بطور همزمان می توان مقداری را به آن نيز نسبت داد ( تعريف و مقداردهی همزمان ) :

Dim strCityName  As String = "Tehran"

امکان تعريف همزمان چندين متغير هم نوع در يک سطر نيز وجود دارد : ( تعريف همزمان چندين متغير با نوع يکسان )

Dim strCityName1 , strCityName2 , strCityName3 As String
strCityName1 = "Tehran"
strCityName2 ="Ahwaz"
strCityName3 = "Shiraz"

درادامه می توان به هريک از متغيرهای تعريف شده ، مقدار مورد نظر را نسبت داد .
مثال کاربردی : در اين مثال در ابتدا سه متغير را تعريف و پس از مقداردهی مناسب هر يک از آنان ، نتايج را با يک فرمت مناسب در خروجی نمايش خواهيم داد ( يک صفحه ASPX ) .
مرحله اول : فعال نمودن ويرايشگر صفحات وب و تايپ دستورات زير :

<Script Language= "vb" runat="server">
Sub Page_Load ( )
  Dim ArticleTitle As String
  Dim ArticleNumber As Integer
  Dim PublishDate As Date
  ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) "
  ArticleNumber = 190
  PublishDate = #6/15/2004#
  Label1.Text = ArticleTitle
  Label2.Text = ArticleNumber
  Label3.Text = PublishDate
  End Sub
</Script>
<html dir="rtl">
  <head>
    <title>ايجاد متغير</title>
 </head>
  <body>
عنوان مقاله   :
   <asp:label id="Label1" runat="server" />
    <br>شماره مقاله:
    <asp:label id="Label2" runat="server" />
    <br>تاريخانتشار مقاله:
     <asp:label id="Label3" runat="server" />
   </body>
</html>

مرحله دوم : ذخيره نمودن برنامه فوق در فايلی با نام TestVariable.aspx
مرحله سوم : فعال نمودن فايل TestVariable.aspx در مرورگر
مرحله چهارم : برگشت به برنامه فوق و افزودن يک خط جديد ( استفاده از يک متغير که قبلا" تعريف نشده باشد )

    ...
   Dim  PublishDate As Date
   ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) "
   ArticleNumber = 190
   PublishDate = #6/15/2004#
   ArticleAuthor = "مديريت وب"
    ...
   Label1.Text = ArticleTitle
   ...

مرحله پنجم : ذخيره نمودن برنامه فوق در فايلی با نام TestVariable.aspx
مرحله ششم : فعال نمودن فايل TestVariable.aspx در مرورگر
همانگونه که مشاهده می شود ، در خط شماره نه (خطی که از متغير ArticleAuthor ، استفاده شده است ) به دليل استفاده از متغيری که قبلا" اقدام به تعريف آن نشده است با يک خطاء مواجه خواهيم شد. به منظور برطرف نمودن خطای فوق ، می بايست متغير ArticleAuthor تعريف و در ادامه مقدار مورد نظر در آن ذخيره گردد.
• در برنامه فوق ، در ابتدا اقدام به تعريف سه متغير شده است . ما قصد داريم که از text در متغير ArticleTitle استفاده نمائيم ، بنابراين آن را به صورت String تعريف کرده ايم . شماره مقاله يک عدد صحيح است و بدين منظور و برای نگهداری مقدار مربوطه از متغيری با نام ArticleNumber و نوع صحيح استفاده شده است . از متغير PublishDate ، که از نوع Date تعريف شده است به منظور ذخيره تاريخ نشر يک مقاله، استفاده شده است .

Dim  ArticleTitle As String
Dim  ArticleNumber As Integer
Dim  PublishDate As Date

• پس از تعريف هر يک از متغيرها ، می توان به هر يک از آنان مقدار مورد نظر را نسبت داد : مقدار " ذخيره سازی اطلاعات در VB.NET ( بخش اول ) " ، به متغير ArticleTitle نسبت داده شده است . در اين رابطه ، مقدار مورد نظر بين علامت کوتيشن قرار داده شده است . بدين ترتيب به VB.NET اعلام می شود که ما قصد نسبت دهی يک text به يک متغير را داريم . در صورتی که تمايل به انتساب يک مقدار عددی به متغيری را داشته باشيم ، می بايست علامت کوتيشن را حذف نمائيم. در متغيردوم ، مقداری صحيح و عددی به ArticleNumber ، نسبت داده شده است . در نهايت مقداری از نوع Date به متغير PublishDate ، نسبت داده شده است .

ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) "
ArticleNumber = 190
PublishDate = #6/15/2004#

• در ادامه ، سه کنترل <asp:label> ، و با نام Label1,Label2 و Label3 ايجاد و مقدار خصلت Text هر يک از آنان ، محتويات هر يک از سه متغير تعريف شده، در نظر گرفته شده است .

Label1.Text = ArticleTitle
Label2.Text = ArticleNumber
Label3.Text = PublishDate

• در ادامه ، يک خط جديد به برنامه اضافه گرديد تا نشان داده شود که در صورت استفاده از يک متغير که قبلا" آن را تعريف نکرده ايم ، با چه نوع خطائی برخورد خواهيم کرد. علت بروز خطاء ، به عدم تعريف متغير ArticleAuthor ، برمی گردد . برای رفع اشکال فوق ، می بايست متغير ArticleAuthor را در ابتدا تعريف نمود :

Dim ArticleAuthor As String

انواع نوع های ساده

VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسيم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه .

انواع نوع های ساده ( Simple Data Types )

VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسيم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه . در ادامه به بررسی هر يک از گروه های فوق ، خواهيم پرداخت ( در اين مقاله نوع Object بررسی نخواهد شد و در مقالاتی جداگانه به اين نوع داده ، خواهيم پرداخت ) .

گروه اول : نوع های عددی

با توجه به تنوع گسترده نوع های عددی در اين گروه ، می توان هر گونه عددی را به يک متغير نسبت داد . مثلا" می توان متغيرهائی را ايجاد و به آنان اعداد صحيح ، اعداد کسری و يا اعداد اعشاری منفی را نسبت داد

Dim IntegerNumber1 As Integer
Dim DecimalNumber2 As Decimal
Dim FloatingPointNumber3 As Float
IntegerNumber1 = 75
DecimalNumber2  = 3.14
FloatingPointNumber3 = -1.4E02

نوع های عددی ، يکی از انواع داده متداول در VB.NET بوده که خود به هفت نوع متفاوت تقسيم می گردند :
• Integer : برای تعريف متغيرهائی که دارای مقادير صحيح می باشند ، استفاده می گردد( 3 ، 12 ، 5 - ) . متغيرهائی از اين نوع ، قادر به نگهداری مقادير صحيح بين 2،147،483،648 - تا 2،147،483،647 ، می باشند . برای اعداد خارج از محدوده فوق ، نوع long در نظر گرفته می شود.
• Byte : متغيرهائی از اين نوع ، قادر به نگهداری مقاديرصحيح بين ، 0 تا 255 ، می باشند . از نوع فوق به منظور انجام عمليات پايه و ساده رياضی استفاده می گردد . ( مثلا" شمارنده هائی در برنامه که مقدار آنان حداکثر 255 می باشد) . برای ذخيره سازی اين نوع متغيرها صرفا" يک بايت حافظه در نظر گرفته می شود.
• Short : نوع فوق ، شکلی خاص از نوع Integer می باشد. متغيرهائی از اين نوع قادر به نگهداری محدوده کمتری از اعداد صحيح ( بين 32،768 - تا 32،767 ) در مقايسه با نوع Integer می باشند .
• Long : نوع فوق شباهت زيادی به نوع Integer داشته با اين تفاوت که امکان ذخيره سازی محدوده بيشتری از اعداد را فراهم می نمايد. يک متغير از نوع Long قادر به ذخيره سازی مقاديربين 9،223،372،036،854،775،808 - تا 9،223،372،036،854،775،807 ، می باشد .
• Single : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری با دقت معمولی ودر محدوده زير می باشند :

محدوده نوع Single

 -3.402823E38 to  -1.401298E-45

 اعداد  منفی

1.401298E-45  to   3.402823E38

 اعداد  مثبت

• Double : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری با دقت مضاعف و در محدوده زير می باشند :

محدوده نوع Double

-1.79769313486232E308 to -4.94065645841247E-324

 اعداد  منفی

4.94065645841247E-324 to 1.79769313486232E2308

 اعداد  مثبت

• Decimal : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری تا حداکثر بيست و هشت رقم اعشار می باشند.

محدوده نوع Decimal

 +/- 79،228،162،514،264،337،593،543،950،335

حداکثر: با لحاظ نمودن صفر رقم اعشار

+/- 7.9228162514264337593543950335

حداکثر: با لحاظ نمودن بيست و هشت رقم اعشار

گروه دوم : نوع های حرفی ( متنی )

برای ذخيره سازی محتويات متنی ، از دو نوع داده String و Char استفاده می شود:
• نوع String : متغيرهائی از اين نوع ، همه چيز را به عنوان text در نظر می گيرند ولو اين که مقدار مورد نظر شامل حروف و اعداد و يا صرفا" اعداد و يا تاريخ باشد . دستور زير متغيری از نوع string و با نام CityName را تعريف و در ادامه مقدار "Tehran" ، به آن نسبت داده می شود.

Dim CityName As String
CityName = "Tehran"

• همانگونه که قبلا" اشاره گرديد ، برای نسبت دهی يک مقدار به متغيرهائی از نوع string ، از کوتيشن استفاده می شود.انجام عمليات رياضی بر روی رشته ها ، مجاز نخواهد بود (حتی در صورتی که محتويات آنان عددی باشد) . مثلا" در صورتی که تصميم به جمع دو رشته "12" و "14" را با يکديگر داشته باشيم ، مقدار "26" بدست نخواهد آمد. در چنين حالتی ، ماحصل جمع دو رشته مقدار "1412" ، خواهد بود . چراکه رشته Number2 با Number1 را جمع کرده ايم در صورتی که رشته Number1 با Number2 جمع شود ، مقدار " 1214 " را خواهيم داشت .

Dim Number1 As string
Dim Number2 As string
Dim Number3 As string
Number1 = "12"
Number2 = "14"
Number3 = Number2 + Number1  ' Result :  "1412"

• نوع Char نوع فوق ، نسبت به نوع String متفاوت بوده و در آن text به عنوان يک عدد ، ذخيره می گردد. بدين ترتيب ، امکان ذخيره سازی صرفا" يک کاراکتر در يک متغير، فراهم می گردد. در چنين حالتی می توان يک عدد بين صفر تا 65535 را ذخيره نمود. در صورتی که قصد نمايش محتويات يک متغير از نوع char را داشته باشيم ، صرفنظر از نحوه ذخيره سازی ، يک کاراکتر text ، نمايش داده می شود . کد زير ، نحوه تعريف و نسبت دهی يک مقدار به متغيری از نوع char را نشان می دهد( حرف 'C' ، پس از کوتيشن ، نشاندهنده اين موضوع است که متغير از نوع Char می باشد) .

Dim Letter As Char
Letter = "Q"C    ' This would be stored as 81

گروه سوم : نوع های متفرقه

دو نوع داده ديگر در VB.NET وجود دارد که می توان آنان را در اين گروه قرار داد :
• نوع Date : متغيرهائی از اين نوع ، قادر به نگهداری تاريخ و زمان می باشند . برای ذخيره تاريخ می بايست از فرمت mm/dd/yy استفاده گردد. مقدار نسبت داده شده به يک متغير از نوع Date توسط علائم " # " ، محصور می گردد . متغيرهائی از نوع Date ، قادر به ذخيره سازی تاريخ تا سال 9999 می باشند .

Dim Date1 As Date
Date1 = # 12/ 07 / 2004#

• از متغيرهای نوع Date می توان به منظور ذخيره سازی زمان نيز استفاده نمود :

Dim Time1 As Date
Time1 = #16:25:05#

• نوع Boolaen : متغيرهائی از اين نوع می توانند دارای مقدار True و يا False باشند . در VB.NET در صورتی که مقادير فوق را به نوع صحيح تبديل نمائيم ، مقادير 1 - و صفر را خواهيم داشت . زمانی که ساير نوع های عددی را به مقادير Boolaen تبديل می نمائيم ، مقدار صفر به False و ساير مقادير به True تبديل خواهند شد . زمانی که مقادير Boolean را به ساير نوع های داده تبديل می کنيم ، False مقدار صفر و True مقدار يک را دارا خواهد بود. علت اين که در مواردی که True تبديل به نوع صحيح در VB.NET می گردد مقدار 1 - و زمانی که به ساير نوع ها تبديل می گردد ، مقدار 1 + را دارا می باشد ، به حمايت از کدهای نوشته شده قبلی در ويژوال بيسيک برمی گردد .

Boolean Value

Numeric value

True
False

 -1 / +1
 0

• از متغيرهای Boolean ، می توان به منظور نگهداری وضعيت يک متغير استفاده نمود. در صورتی که مقدار اينچنين متغيرهائی True نباشد ، قطعا" مقدار آنان False خواهد بود. بدين ترتيب می توان از اين نوع متغيرها در موارد متعدد و متناسب با شرايط موجود استفاده و پس از اتخاذ تصميم ، عمليات مورد نظر را دنبال نمود.

Dim  Done As  Boolean
Done = False
If   Done = False then  
       ...
Else
      ...

• مقدار False و يا True ، نمی بايست بين کوتيشن قرار داده شوند .

نامگذاری متغيرها

بهترين حالت برای نامگذاری يک متغير ، در نظر گرفتن نامی است که نشاندهنده وظيفه يک متغير در برنامه باشد. در صورتی که اسامی متغيرها به درستی انتخاب گردند ، خوانائی برنامه و در نهايـت نگهداری و اعمال تغييرات در آينده نيز راحتر خواهد بود . پيشنهاد می گردد ، اسامی متغيرها به صورت تشريحی در نظر گرفته شود، حتی اگر اين کار باعث طولانی تر شدن اسامی می گردد .
برای انتخاب نام يک متغير ، موارد زير پيشنهاد می گردد :
• استفاده از اسامی نظير DateStart و يا DateEnd بمراتب بهتر از اسامی StartDate و يا EndDate می باشد ، چراکه اسامی فوق در صورت جستجوی متغيرها بر اساس حروف الفبائی، به دنبال هم نمايش داده می شوند .
• متغيرهائی نظير Price ،Name و Number گيج کننده می باشند . چراکه معمولا" در برنامه ها بيش از يک مورد از آنان وجود دارد نظير : NameFirst ,NameLast, PriceBuy و PriceSell .
• استفاده از اسامی مشابه نوع داده ها ، مجاز نمی باشد . مثلا" تعريف متغيری با نام Integer ، مجاز نخواهد بود .
• برای نامگذاری متغيرها از اسامی خلاصه شده ای که اقتباس شده از کلمات متفاوتی می باشند، استفاده نگردد . مثلا" استفاده از متغيری با نام FDOM که اقتباس شده از کلمات First Day Of Month می باشد ، يک انتخاب مناسب نخواهد بود ، چراکه FDOM می تواند مخفف کلمات متعددی باشد .
• در اکثر زبان های برنامه نويسی انتخاب يک نام برای متغير تابع مجموعه مقررات و محدوديت هائی است . در VB.NET تمامی متغيرها می بايست با يک حرف شروع شده و نمی بايست نام در نظر گرفته شده شامل نقطه و يا فضای خالی باشد . پيشنهاد می گردد به منظور افزايش خوانائی يک برنامه، صرفا" از علامت Underscore ( _ ) به همراه نام يک متغير استفاده گردد .
• VB.NET نسبت به حروف بزرگ و کوچک حساس نمی باشد . مثلا" متغيرهائی با نام counter و COUNTER مشابه در نظر گرفته خواهند شد .برخی از زبان های برنامه نويسی نظير سی شارپ و يا Jscript.NET ، نسبت به حروف بزرگ و کوچک حساس بوده و متغيرهائی با نام counter و COUNTER ، به عنوان دو متغير جداگانه در نظر گرفته می شوند .

روشی برای نامگذاری متغيرها

در صورتی که دارای تعداد زيادی متغير در يک برنامه باشيم ، می بايست از روش های خاصی به منظور آگاهی از نوع محتويات آنان ، استفاده کرد. در چنين مواردی می توان به بخش تعاريف متغيرها در برنامه مراجعه نمود و از نوع داده مربوط به هر يک از آنان آگاهی يافت . در موارديکه هزاران متغير در يک برنامه تعريف شده است ، منطقی نخواهد بود که برای آگاهی از نوع محتويات يک متغير، ليست تمامی متغيرها را بررسی نمود . در يک برنامه در برخی مواقع لازم است که نوع يک متغير به نوع ديگر، تبديل گردد، در چنين مواردی آگاهی از نوع يک متغير کمک قابل توجهی را به برنامه نويس ارائه داده و از بروز خطاء در برنامه پيشگيری می نمايد .بدين منظور می توان از مجموعه ای قواعد که به نوعی امروزه بين برنامه نويسان مرسوم شده اند ، برای مشخص نمودن نوع يک متغير استفاده نمود . قواعد فوق ، اجباری نبوده و صرفا" بين برنامه نويسان مرسوم شده اند.رويکرد فوق ، گزينه ای مناسب برای نامگذاری متغيرها با توجه به نوع داده آنان است . در اين روش که موسوم به Hungarian notation می باشد ،از سه حرف اول نام هر متغير به منظور شناسائی نوع داده متغير، استفاده می گردد :

 Data Type

 Prefix

 Example

Boolean

bln

blnMember

Byte

byt

bytByte

Char

chr

chrChar

Date

dat

datToday

Double

dbl

dblDouble

Decimal

dec

decDecimal

Integer

int

intSalary

Long

lng

lngLong

Single

sng

sngSingle

Short

sho

shoShort

String

str

strTextBox

در اين رابطه از روشی ديگر با نام Short Hungarain notation استفاده می گردد . برای آگاهی از جزئيات اين روش می توانيد از آدرس MSDN ، استفاده نمائيد .

عملگرها ( Operators )

استفاده از متغيرها در يک زبان برنامه نويسی زمانی مفيد خواهد بود که بتوان بر روی آنان عملياتی را انجام داد . به منظور انجام عمليات بر روی متغيرها ، نيازمند استفاده از "عملگرها" می باشيم . "عملگر" ، علامتی است که مسئوليت انجام يک عمليات از قبل تعريف شده را بر روی "اپراندهای " خود و توليد نتيجه مورد نظر ، برعهده دارد . اگر 1+2 = X باشد ، "X " يک متغير ، "=" يک عملگر و مقادير يک و دو ، اپراندهای آن می باشند .

عملگر نسبت دهی

عملگر "=" ، متداولترين و شناخته ترين عملگر استفاده شده در دنيای برنامه نويسی است.از عملگر فوق به منظور نسبت دادن مقدار به يک متغير استفاده می گردد. ( متغير در سمت چپ و مقدار متغير در سمت راست عملگر "=" ،قرار می گيرد) .

Dim intNumber1  As Integer
intNumber1 = 7447

VB.NET هيچگونه تاکيد و يا اجباری در خصوص تعداد فضای خالی ( Space ) استفاده شده در دو طرف علامت "=" ندارد.برنامه نويسان به منظور افزايش خوانائی برنامه ، می توانند به تعداد مورد نظر از فضای خالی استفاده نمايند .

 Dim intNumber  As Integer
 intNumber =     3

عمليات رياضی

در VB.NET ارزيابی يک عبارت از سمت راست به چپ ، انجام می شود. مثلا" در عبارت intNumber1 = intNumber1 + 1 ، در ابتدا مقدار intNumber1 + 1 ، محاسبه شده و در ادامه مقدار بدست آمده در متغير intNumber1 ، ذخيره می گردد . علامت "=" ، وظيفه يک عملگر نسبت دهی را برعهده داشته و پس از محاسبه مقدار مورد نظر آن را به متغير intNumber1 نسبت می دهد

Dim intNumber 1  As Integer
 intNumber1= 2
 intNumber1 =  intNumber1 + 1 

عملگرهای محاسباتی

در VB.NET از عملگرهای محاسباتی زير استفاده می شود :

کاربرد

عملگر

 جمع

 +

 تفريق

-

 ضرب

*

 تقسيم

/

 توان

^

 منفی

 -

 باقيمانده

MOD

مثال : در برنامه زير ، دو متغير به اسامی intNumber1 و intNumber2 تعريف و پس از انتساب مقدار مورد نظر به هر يک از آنان ، مقادير دو متغير با يکديگر جمع و حاصل در متغيری ديگر و با نام intNumber3 ، ذخيره می گردد .

Dim intNumber1   As Integer
Dim intNumber2   As Integer
Dim intNumber3   As Integer

intNumber1 = 14
intNumber2 = 12
intNumber3 =  intNumber1 + intNumber2  

به منظور مشخص نمودن اولويت انجام محاسبات در يک عبارت ، می توان از پرانتر استفاده نمود . مثلا" در کد زير ، در ابتدا مقدار موجود در متغير intNumber2 بر عدد شش تقسيم و در ادامه مقدار به دست آمده به متغير intNumber1 اضافه شده و در نهايت ، نتيجه بدست آمده در متغيری با نام intNumber3 ذخيره می گردد( استفاده از پرانتز در يک عبارت ، باعث افزايش خوانائی برنامه نيز می گردد ) .

Dim intNumber1   As Integer
Dim intNumber2  As Integer
Dim intNumber3  As Integer

intNumber1= 14
intNumber2 = 12
intNumber3 =  intNumber1 + (intNumber2 /6 )  

مثال : در برنامه زيراز يک رابطه ساده رياضی به منظور محاسبه ميزان ماليات ، استفاده شده است .

<Script language="vb"  runat="server">
 Sub Page_Load ( )
    Dim intEarn As Integer
    Dim intTax  As Integer
    Dim decTotal As Decimal
    intEarn = 150
    intTax = 10
    decTotal = intEarn - ( ( intEarn / 100 ) * intTax )
    Display1.Text = intEarn
    Display2.Text = ( intEarn / 100 ) * intTax
    Display3.Text = decTotal
End Sub
</Script>

<html dir="rtl">
<head>
  <title> استفاده از عملگرها در يکعبارت رياضی</title>
</head>
<body>
 ميزان دستمزد:  <asp:label  id="Display1" runat="server" /><Br>
 ماليات: <asp:label  id="Display2" runat="server" /><Br>
 مبلغ پرداختی پس از کسر ماليات  :  <asp:label  id="Display3" runat="server" />
</body>
</html>

پس از ذخيره برنامه فوق در فايلی با نام TestTax.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :
توضيحات : در برنامه فوق ، از سه متغير به اسامی intEarn (به منظور ذخيره ميزان دستمزد) ، intTax ( به منظور ذخيره نرخ محاسبه ماليات ) و decTotal ( به منظور ذخيره مبلغ خالص پرداختی ) ، استفاده شده است .

Dim intEarn As Integer
Dim intTax  As Integer
Dim decTotal As Decimal

در ادامه ، مقادير مورد نظر به متغيرهای intEarn ( مقدار 150 ) و intTax ( مقدار 10 ) ، نسبت داده شده است .

 intEarn = 150
 intTax = 10

به منظور محاسبه مبلغ قابل پرداخت ، در ابتدا ميزان ماليات با توجه به نرخ مشخص شده ( 10 درصد) ، محاسبه و پس از کسر مبلغ فوق از ميزان دستمزد ، حاصل در متغير decTotal ، ذخيره می گردد. از پرانتر به منظور مشخص نمودن اولويت محاسبات ، استفاده شده است .

 decTotal = intEarn - ( ( intEarn / 100 ) * intTax )

در نهايت ، مقادير decTotal ، intEarn و ميزان ماليات محاسبه شده به خصلت text هر يک از کنترل های label1,label2 و label3 نسبت داده شده است ( Display1 ، Display2 و Display3 ) .

 Display1.Text = intEarn
 Display2.Text = ( intEarn / 100 ) * intTax
 Display3.Text = decTotal

عمليات بر روی رشته ها

با استفاده از عملگر "+" می توان دو متغير از نوع integer را با يکديگر جمع نمود . در صورتی که دارای دو متغير از نوع string باشيم و بخواهيم دو رشته فوق را با يکديگر ترکيب نمائيم از فرآيندی با نام Concatenation ، استفاده می شود . در دات نت به منظور اتصال رشته ها و الحاق آنان به يکديگر از دو روش مختلف استفاده می گردد : .
• روش اول : در اين روش ، رشته دوم به انتهای رشته دوم اضافه شده و رشته ای جديد ايجاد می گردد . بدين منظور از عملگر "&" ( ampersand ) ، استفاده می شود .

Dim strTest As String 
strTest = " Test " & "VB.NET"

• ماحصل ترکيب دو رشته فوق ، TestVB.NET بوده که به متغير strTest نسبت داده می شود. در VB.NET به صورت اتوماتيک از فضای خالی ( Space ) استفاده نمی گردد و در صورت لزوم می توان به ميزان دلخواه فضای خالی را به عنوان يک رشته استفاده و آن را با ساير متغيرها ، ترکيب نمود . در مثال زير سه رشته که يکی از آنان Space ( که خود نيز يک رشته است ) ، می باشد با يکديگر ترکيب شده اند.

Dim strTest  As String 
strTest = " Test " & "   " & "VB.NET"

• ماحصل ترکيب سه رشته فوق ، Test VB.NET بوده که به متغير strTest نسبت داده می شود .
• روش دوم : در اين روش برای اتصال رشته ها به يکديگر از عملگر "=+" ، استفاده می گردد . ( در متغير strTest مقدار : " TestString TestString TestString TestString " ، ذخيره می گردد).

Dim strTest  As String 
Dim strFirst As String

strFirst ="TestString   "
strTest += strFirst 
strTest += strFirst
strTest += strFirst

مقايسه رشته ها

از عملگرهای مقايسه ای به منظور مقايسه محتويات دو متغير و انجام عمليات مورد نظر با توجه به نتايج بدست آمده ، استفاده می شود . در مواردی که متغيرها از نوع String می باشند ، امکان مقايسه و مرتب نمودن متن با توجه به اولويت هر يک از حروف الفبائی ، فراهم می گردد. جدول زير ، عملگرهای مقايسه ای را نشان می دهد .

کاربرد

عملگر

 مساوی

 =

 کوچکتر

> 

 کوچکتر يا مساوی

=>

 نامساوی

<> 

 بزرگتر

< 

 بزرگتر يا مساوی

 =<

در مثال زير دو متغير از نوع String و به اسامی strName1 و strName2 تعريف و پس از نسبت دادن مقدار دلخواه به هر يک از آنان ، از عملگرهای مقايسه ای به منظور مقايسه و انجام عمليات مورد نظر استفاده شده است .

Dim strName1 As String 
Dim strName2  As String

strName1="Test1"
strName1="HHH"
If  strName1 < strName2 Then Display1.Text = " Test1"
If  strName2 < strName1 Then Display1.Text = " HHH"

ثوابت

ثوابت ، به منزله متغيرهائی می باشند که مقدار نسبت داده شده به آنان در زمان اجرای برنامه تغيير نمی نمايد. "نرخ محاسبه ميزان ماليات " ، نمونه ای در اين زمينه بوده که مقدار آن به ندرت تغيير می نمايد. در زمان فروش يک کالا و به منظور محاسبه ميزان ماليات مربوطه ، ممکن است به دفعات به آن مراجعه گردد . حتی اگر نرخ محاسبه ماليات تغيير يابد ، شما صرفا" مجبور به اعمال تغييرات در يک مکان ، خواهيد بود. استفاده از "ثوابت " ، خوانائی يک برنامه را افزايش و باعث تسهيل در امر نگهداری يک برنامه می گردد .
اکثر زبان های برنامه نويسی روش خاصی را به منظور تعريف "ثوابت " ، در اختيار برنامه نويسان قرار می دهند . در VB.NET به منظور تعريف يک ثابت از کليد واژه Const استفاده می گردد ( معمولا" اسامی ثوابت ، به صورت "حروف بزرگ " ، در نظر گرفته می شوند ).

Const TAXRATE = 10

پس از تعريف يک ثابت ، در صورتی که در ادامه برنامه قصد تغيير مقدار نسبت داده شده به آن را داشته باشيم ، با يک پيام خطاء مواجه خواهيم شد .

نوع های داده ساخت يافته

نوع های ساده ، صرفا" قادر به ذخيره سازی يک آيتم اطلاعاتی می باشند . در صورتی که قصد ذخيره چندين آيتم اطلاعاتی مرتبط به هم در يک برنامه را داشته باشيم ، می بايست از "نوع های داده ساختيافته " ، استفاده گردد. VB.NET دارای امکانات متعددی به منظور ذخيره نمودن اينگونه اطلاعات است ( از اشياء ديکشنری تا جدول hash و XML ) . در ادامه با "آرايه ها" که ساده ترين نوع در اين زمينه می باشند ، آشنا می شويم .

آرايه ( Array )

از آرايه ها به منظور ذخيره سازی مجموعه ای از اقلام اطلاعاتی مرتبط به هم در متغيرهائی که همگی دارای يک نام بوده و توسط يک ايندکس عددی اضافه شده به انتهای آنان شناسائی می گردند، استفاده می شود. دستورات زير نحوه تعريف يک آرايه و نسبت دهی مقدار به هر يک از عناصر آن را نشان می دهد .

Dim StrName ( 5 ) As String
StrName(0) = "AAA"
StrName(1) = "BBB"
StrName(2) = "CCC"
StrName(3) = "DDD"
StrName(4) = "EEE"
StrName(5) = "FFF"

اولين ايندکس يک آرايه، صفر در نظر گرفته می شود ( Zero based ) . در مثال فوق ، شش عنصر و به ترتيب در مکان های صفر تا پنج آرايه ، ذخيره می گردند .

تعريف يک آرايه

آرايه ها نظير متغيرها می بايست با استفاده از کليد واژه Dim تعريف گردند . تعريف يک آرايه مستلزم تعريف يک پارامتر اضافی ديگر به منظور مشخص نمودن اندازه آن است . دستور زير يک آرايه با اندازه پنجاه و از نوع String را تعريف می نمايد . تمامی المان های آرايه می بايست از نوع String باشند .

Dim  Strarray1 (49) As String

آرايه های چند بعدی

در مواردی که اطلاعات دارای ماهيتی دوبعدی و مرتبط به هم می باشند ، می توان از يک آرايه دوبعدی به منظور ذخيره آنان استفاده نمود . مثلا" در صورتی که قصد ذخيره مجموعه ای از اطلاعات مرتبط به هم نظير نام و نام خانوادگی را داشته باشيم ، می توان از يک آرايه دوبعدی استفاده نمود. به منظور تعريف يک آرايه دو بعدی می بايست يک پارامتر ديگر را در زمان تعريف آرايه نيز مشخص نمائيم . دستورات زير نحوه تعريف و مقداردهی يک آرايه دو بعدی 4 * 4 از نوع string را نشان می دهد ( امکان ذخيره حداکثر شانزده عنصر در اين آرايه وجود خواهد داشت ) .

Dim  strArray1 (3,3) As String
 ...
strArray (0,0)  = "AAA"
strArray (0,1)  = "BBB"
 ...

در VB.NET امکان تعريف يک آرايه حداکثر شصت بعدی وجود خواهد داشت . استفاده از آرايه های بيش از سه بعد توصيه نشده و در صورت نياز می توان از ساير راهکاری موجود نظير بانک های اطلاعاتی ، استفاده نمود .

خلاصه

در مجموعه مقالاتی که با عنوان " نحوه ذخيره سازی اطلاعات در VB.NET " ، ارائه گرديد با موارد زير آشنا شديم :
• جايگاه استفاده از متغيرها در يک برنامه
• نحوه تعريف متغير در VB.NET و استفاده از آنان در صفحات ASP.NET
• بررسی انواع نوع های داده ساده
• نحوه انجام عمليات بر روی متغيرها و انجام برخی محاسبات ساده با استفاده از عملگرهای محاسباتی و مقايسه ای
• بررسی نوع های داده ساختيافته و نحوه استفاده از يک آرايه در برنامه